package 预科0103StudentSystem;

/*实现简易的学生信息管理系统，要求打印字符界面提示用户选择相应的功 能，根据用户输入的选择去实现增加、删除、修改、查找以及遍历所有学生信息的功能。 

其中学生的信息有：学号、姓名、年龄。 要求： 尽量将功能拆分为多个.java 文件。*/
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
public class StudentSystem implements SystemFunction{
	//存放学生信息
	private static HashMap<Integer,Student> students=new HashMap<Integer,Student>();
	//单例模式
	private static StudentSystem studentSys=new StudentSystem();
	private Scanner scan=new Scanner(System.in);
	private StudentSystem() {
		print();
	}
	
	public static StudentSystem getStudentSys() {
		return studentSys;
	}
//打印目录
	public void print() {
		System.out.println("              学生信息管理系统"+"\n"
				  +"1 增加学生信息          2 删除学生信息"+"\n"
				  +"3 修改学生信息          4 查询学生信息"+"\n"
				  +"5 展示所有学生信息   6 结束服务"   +"\n"
				  +"请输入想获取的服务序号" +"\n");
	}
	@Override
	public void add() {
		Student stu =new Student();
		do {
			System.out.println("请输入新增学生的学号");
			stu.setId(scan.nextInt());
		}while(students.containsKey(stu.getId()));
		System.out.println("请输入新增学生的姓名");
		stu.setName(scan.next());
		System.out.println("请输入新增学生的年龄");
		stu.setAge(scan.nextInt());
		students.put(stu.getId(),stu);
		System.out.println("新增成功！");
		print();
	}

	@Override
	public void delete() {
		int id;
		do {
			System.out.println("请输入删除学生的学号");
			id=scan.nextInt();
		}while(students.containsKey(id)==false);
		students.remove(id);
		System.out.println("删除成功！");
		print();
		
	}

	@Override
	public void change() {
		Student stu =new Student();
		do {
			System.out.println("请输入修改学生的学号");
			stu.setId(scan.nextInt());
		}while(students.containsKey(stu.getId())==false);
		System.out.println("请输入修改学生的姓名");
		stu.setName(scan.next());
		System.out.println("请输入修改学生的年龄");
		stu.setAge(scan.nextInt());
		students.put(stu.getId(),stu);
		System.out.println("修改成功！");
		print();
		
	}

	@Override
	public void find() {
		int id;
		do {
			System.out.println("请输入查找学生的学号");
			id=scan.nextInt();
		}while(students.containsKey(id)==false);
		System.out.println(students.get(id).toString());
		print();
		
	}

	@Override
	public void show() {
		for(Integer i:students.keySet()) {
			System.out.println(students.get(i).toString());
		}
		print();
		
	}


	
}
 